import Vue from 'vue'
import App from './App.vue'
import router from './router'
import './plugins/element.js'
import './assets/css/global.css'
import axios from 'axios'
import VueSession from 'vue-session'
import htmlToPdf from '@/htmlToPdf'
Vue.use(htmlToPdf)
Vue.use(VueSession)

Vue.prototype.$http=axios
axios.defaults.baseURL="http://localhost:9000"

Vue.config.productionTip = false


new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

router.beforeEach((to, from, next) => {
  //router.beforeEach一般用来做一些进入页面的限制
  // console.log('上一个页面：', from)
  // console.log('下一个页面：', to)
  document.title = "轻量级培养方案管理系统"
  let userToken = sessionStorage.getItem('token')
  // console.log(userToken)
  let role = sessionStorage.getItem('role')
  // console.log(role)
  if (to.meta.requireAuth) {      // 1)判断该路由是否需要登录权限
    if (userToken) {  // 2)判断本地是否存在token,有说明登录过
      if (to.meta.roles.length !== 0) {
        //下一个页面的rules是否与当前token相等
        for (let i = 0; i < to.meta.roles.length; i++) {
          if (role === to.meta.roles[i]) {
            next()       //角色匹配已登录，正常进入to.meta.roles[i]的页面
            break
          } else if (i === to.meta.roles.length - 1) {
            next({ path: '/Error' })
          }
        }
      } else {
        next()
      }
    } else {
      next({path: '/login' })
    }
  } else {
    next()
  }
  /* 如果本地存在token,则不允许直接跳转到登录页面 */
  if (to.fullPath === '/login') {
    if (userToken) {
      next({ path: from.fullPath})
    } else {
      next()
    }
  }
})
